Now Loading ...
-
Jekyll 테마 404 에러 해결
며칠 깃 블로그 관리 안하다가, 다시 여유되서 마크다운 파일 몇개 푸시했는데, 분명 존재하는 파일인데 404가 발생했다.
작성했던 페이지를 제대로 로드는 하지만, 해당 페이지 경로를 들어가도 작성했던 페이지가 뜨는게 아니라, 404가 뜨는 것이다.
특이하게 기존에 작성해뒀던 페이지들은 이상없이 잘 동작해서, 특정 경로에 띄어쓰기(공백)이 있어서인가 싶었으나 그것도 아니였다.
결국 로컬에서 jekyll을 설치하고, 한번 실행해가며 해결해나간 과정을 작성해본다.
Readme.md Installation을 따르며, 단계를 빼먹지 말자.
처음 해당 블로그를 설치할 적, 단순히 fork한 후 내 입맛에 맞춰 _confing.yml파일 수정해서 page를 추가해나가는 식으로만 진행했다.
완전히 새로운 내용들 작성하는 것보다 기존 내용을 조금씩 수정하며 익숙해지는게 편해서였는데, 이로인해 빼먹은 내용들이 일부 있었다.
참고 : Jekyll 테마 적용
참고 링크의 과정들을 따르고나면, 이제 아래와 같은 과정을 따르면 좋을 것이다.
아래 작성하는 모든 과정은, Readme.md의 Installation 중 Method 2를 Window 환경에 맞춰서 풀어서 작성한 것이다.
https://rubyinstaller.org/downloads/에서 ‘RubyInstallers with Devkit’을 다운받고, 설치한다.
다 설치되고나서 cmd창에서 열겠다고 그대로 진행하면, cmd 창에서 뭔가 많은 내용들이 뜨고 선택해서 설치하라는 내용이 나올 것이다.
그 중 MSYS2 and MINGW development toolchain에 해당하는 3번을 선택하기 위해, 3을 입력하고 엔터를 눌러준다.
이후 새로운 cmd 창을 열어서 gem install jekyll bundler 를 입력해주면, jekyll 설치가 진행된다.
필자는 여기서 한 번 막혔는데, PC 재부팅한 후 진행하니까 되서 혹시나 여기서 막힌다면 재부팅 해보는 것도 추천한다.
설치가 다 됐다면 jekyll -v를 입력해서 jekyll 버전이 뜨는지 확인할 수 있다.
현재 프로젝트({username}.github.io)의 Gemfile 최하단에 gem "jekyll-theme-satellite"를 작성해준다.
현재 프로젝트({username}.github.io) 위치에서 cmd를 열어준다.
VScode로 진행 중이라면 그냥 해당 폴더(프로젝트)에서 터미널 열어주면 된다.
열어둔 cmd 창에 bundle install 을 입력해서 현재 프로젝트의 내용들을 설치해준다.
필자는 이 단계에서 an error occurred while installing wdm (0.1.1), and bundler cannot continue. 이런 에러가 뜨면서 진행이 불가했다.
Newbie problems with wdm errors를 참고하여, 그냥 지우라는 말이 있길래 주석처리를 하고 진행해보았다.
이후 설치에 에러 없이 진행되는 것을 볼 수 있었다.
마지막으로 bundle exec jekyll serve 를 입력하여 로컬에서 jekyll 테마를 열 수 있다. 주소는 <localhost:4000>로 열린다.
일부 Warning 코드들이 발생하는데, 읽어보면 Sass 3.0.0. 에서 지워질 css 문법이라 주의하라는 내용으로 보인다.
추후 문제가 될 경우 수정해도 되지 않을까 생각되어 당장 건들지는 않았다. 무엇보다 Gemfile에 이것저것 버전 명시가 되어있으니 큰 문제는 없지 않을까 생각하기도 했다.
사실 특정 블로그 글을 보면 이렇게 jekyll 테마를 한번 실행해주면 문제가 발생하지 않는 듯하다.(보안상 이유)
필자의 경우, 추가로 /assets/img/thumbnail/empty.jpg 가 없다고 thumbnail 없는 포스트를 열 때 썸네일 로드를 못하는 오류가 있었다.
이는 내가 해당 폴더의 이미지들 쓸 일이 없겠지 생각해서 삭제했던 부분이었는데, 해당 오류가 발생하는 것을 확인한 후 원복시켰다.
아마 기존에 작성한 포스트도 썸네일을 비워뒀었는데, 그 때는 404 에러가 안 떳던걸 보면 해당 부분은 404 에러에 직접적인 영향은 없었으리라 생각된다.
다만 이것까지 하고나서 404 에러가 안 뜨는 것을 확인한만큼, 혹시나 하는 마음에 함께 작성해둔다.
-
-
좌측 하단의 Contact 아이콘 및 링크 수정
썸네일에서 볼 수 있는 해당 테마 좌측 하단의 아이콘은, 제작자가 사용자에게 연락할 수 있는 링크를 달아둔 곳이다.
기본은 Github, Email, Twitter, Instagram, Facebook, LinkedIn 로, 연결 주소만 간단히 바꾼다면 _config.yml에서 유저명만 수정해주면 된다.
하지만 필자는 SNS를 기본적으로 안 하기도 하고, 그나마 있는 계정도 개인 일상 등을 올리기보다 덕질용으로 사용하다보니, 이 부분을 바꿀 필요가 있었다.
애초에 해당 블로그를 만든 이유가 단순 블로그 포스팅보다 학습 내용 정리를 위한 블로그이다보니, 추후 제작할 포트폴리오 페이지와 연결을 위해 미리 시도해보았다.
참고로 단순히 보여주지 않는게 목적이라면 _config.yml 에서 해당 값을 비워두기만 해도 된다.
가장 먼저 시도한 것은 티스토리 블로그 링크를 해당 위치에 띄우는 것이다.
관련 코드는 _includes/sidebar.html에 있으며, 다른거 필요없이 링크만 변경하는게 목적이라면 변경하려는 태그의 href 속성만 변경해주면 된다.
이미지의 href 부분을 www.naver.com 변경하고, _config.yml의 twitter_username을 아무 값이나 입력해둔다면,
좌측 하단의 트위터 이미지를 클릭 시 네이버로 연결되는 것을 볼 수 있다.
이제 아이콘을 변경해줄 차례.
아이콘은 svg 태그를 수정해주면 되는데, 티스토리 블로그 링크를 연동할 생각이기에 티스토리 svg 아이콘이 필요했다.
애초부터 img 태그로 png 아이콘을 넣어도 되겠지만, 색상 등을 일치시키기 위해 다른 블로거가 업로드 해둔 svg 아이콘을 사용하였다.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 408.4 408.4"><g><circle class="cls-1" cx="58.18" cy="58.18" r="58.18"/><circle class="cls-1" cx="204.2" cy="58.18" r="58.18"/><circle class="cls-1" cx="204.2" cy="204.2" r="58.18"/><circle class="cls-1" cx="204.2" cy="350.22" r="58.18"/><circle class="cls-1" cx="350.22" cy="58.18" r="58.18"/></g></svg>
출처 : https://marshall-ku.tistory.com/203
사실 이미지 적용하고 href 변경해서 링크 바꿨으면 이제 끝났긴하다.
다만 필자는 기본틀을 최대한 해치지 않는 선에서 진행하고 싶기도 했고, 변수명?이 아직 twitter인 점도 불편하기도 하여 아예 아래와 같이 전부 바꿨다.
{% if site.tistory_username %}
<li><a aria-label="My Tistory" href="https://{{ site.tistory_username }}.tistory.com/">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 408.4 408.4"><g><circle class="cls-1" cx="58.18" cy="58.18" r="58.18"/><circle class="cls-1" cx="204.2" cy="58.18" r="58.18"/><circle class="cls-1" cx="204.2" cy="204.2" r="58.18"/><circle class="cls-1" cx="204.2" cy="350.22" r="58.18"/><circle class="cls-1" cx="350.22" cy="58.18" r="58.18"/></g></svg>
</a></li>
{% endif %}
이렇게 바꿀 경우, _config.yml에서 twitter_username 이름을 tistory_username 으로 바꿔주면되고, 해당 값으로 티스토리 사용자명을 입력해주면 된다.
마지막으로 아이콘 순서까지만 변경하고 마쳤는데, 현재는 해당 블로그는
Github, LinkedIn, Instagram, Facebook, Tistory, Email
순서이다. 방법은 그냥 .contact-list의 자식 요소를 위아래로 바꿔주면 끝.
참고로 티스토리 블로그는 여기와 다르게 개인 취미 생활 내용이나 스터디 내용이라도 일기 형식으로 상대적으로 간단한 내용들을 작성할 예정이다.
-
-
폰트 변경하기
개인적으로 D2Coding 폰트를 접한 뒤로, 해당 폰트를 즐겨 사용하기에 해당 블로그도 D2Coding 폰트를 적용하였다.
메인페이지 : d2codingfont
해당 url에서 최신 버전 폰트 다운로드
필요한 폰트를 /assets/fonts/ 하위에 넣어둔다.
필자는 일반 폰트와 Bold 폰트만 다운받아서 넣어뒀다.
_includes/head.html 에서 <style> 태그 안에 @font-face를 작성해준다.
해당 블로그는 일반 폰트는 400, Bold는 600으로 font-weight을 작성했는데, 기존 폰트들이 h 태그에 적용하는건 600, a, p 적용은 400으로 해둬서 동일하게 맞춰뒀다.
참고로 다른 폰트를 선호해서 다운받았는데 다른 확장자라면, format 안의 내용을 해당 확장자로 바꿔야 한다.
@font-face {
font-family: 'D2Coding';
font-style: normal;
font-weight: 400;
font-display: optional;
src: local('D2Coding'),
url("{{ site.baseurl }}/assets/fonts/D2Coding-Ver1.3.2-20180524.ttf") format("truetype");
}
@font-face {
font-family: 'D2CodingBold';
font-style: normal;
font-weight: 600;
font-display: optional;
src: local('D2CodingBold'),
url("{{ site.baseurl }}/assets/fonts/D2CodingBold-Ver1.3.2-20180524.ttf") format("truetype");
}
해당 파일 하단에 <script> 태그 안에 FontFaceObserver 와 이걸 load 하는걸 작성해주면 된다.
D2Coding 폰트를 찾을 FontFaceObserver를 선언해주고, load 하는건 Promise.all() 안에 작성해줬다.
const D2CNObserver = new FontFaceObserver('D2Coding');
const D2CBObserver = new FontFaceObserver('D2CodingBold');
Promise.all([
D2CNObserver.load(),
D2CBObserver.load(),
nunitoObserver.load(),
righteousObserver.load(),
latoObserver.load(),
]).then(function(){
document.documentElement.className += " fonts-loaded";
});
assets/css/style.scss 에서 font-family 적용된 부분에 D2Coding 폰트들을 추가해준다.
D2Coding과 sans-serif를 제외한 다른 폰트들은 지워도 될 것 같지만, 추후 폰트를 변경할 수도 있을 것 같아 필자는 남겨뒀다.
.fonts-loaded {
a, span, p { font-family:"D2Coding", "Nunito Sans", 'Lucida Sans', sans-serif; }
h1, h2, h3 { font-family:"D2Coding", "Lato", Helvetica, sans-serif; }
mark { font-family:"D2CodingBold", 'Righteous', sans-serif; }
}
a { text-decoration:none; }
a, span, p, h1, h2, h3, i { color:#3A241A; }
a, span, p { font-family:"D2Coding", 'Lucida Sans', sans-serif; }
h1, h2, h3, mark {
margin:0;
font-family:"D2CodingBold", Helvetica, sans-serif;
}
다른 블로그 글들 보면 간단하게 scss 파일 별도로 만들어서 거기서 body 태그에 폰트 적용하기도 한다.
해당 방법이 빠르고 간단하지만, 최대한 기본 틀 유지를 하고 싶어서 이와 같이 진행해보았다.
구글에서 지원하는 외부 폰트를 적용하려면 간단히 @import 써서 적용할 수 있다.
다만 인터넷을 통해야하기에, 로딩이 좀 더 오래 걸릴 수 있다.
@import url(https://fonts.googleapis.com/earlyaccess/nanumgothiccoding.css);
-
Touch background to close